// Sunghan Cho
// 301140084
// sunghanc@sfu.ca

#ifndef STUDENT_H
#define STUDENT_H

#include "item.h"
#include "course.h"
#include <QString>
#include <QVariant>
#include <QList>

class Student : public Item
{
public:
    Student();
    Student(QString name, int stdNum, QString email, QString prefName);
    int getFieldCount();
    QString getFieldHeading(int fieldIndex);
    QVariant getFieldValue(int fieldIndex);
    bool matchesPrimaryField(QVariant value);
    QString getName();
    int getStudentNumber();
    QString getEmail();
    QString getPreferredName();
    void addCourse(Course* pCourse);
    QString getCoursesTakenNames();
    int getCoursesTakenCount();
    bool hasTakenCourse(Course* pCourse);

private:
    QString m_name;
    QString m_preferredName;
    int m_stdNum;
    QString m_email;
    QList<Course*> m_courses;
};

#endif // STUDENT_H
